package com.gqb.wangyi;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main{
	@SuppressWarnings({ "resource", "unused" })
	public static void main(String[] args) {
			Scanner scanner = new Scanner(System.in);
			while (scanner.hasNext()) {
				List<Long> coordinate = new ArrayList<Long>();
				long lightNum = 0;
				lightNum = scanner.nextInt();
				long roadLength = scanner.nextInt();		
				for (int i = 0; i < lightNum; i++) {
					coordinate.add(scanner.nextLong());
				}
//				coordinate=sort(coordinate);
				Collections.sort(coordinate);
				long temp=0;
				int x1=0,x2=0;
				double[] cha=new double[(int) (lightNum+1)];
				cha[0]=coordinate.get(0);
				cha[(int) lightNum]=roadLength-coordinate.get((int) (lightNum-1));
				for (int i = 1; i < coordinate.size(); i++) {
					/*if((coordinate.get(i+1)-coordinate.get(i))>temp){
						temp=coordinate.get(i+1)-coordinate.get(i);
						x1=i;
						x2=i+1;
					}*/
					cha[i]=(coordinate.get(i)-coordinate.get(i-1))/2.0;
				}
				Arrays.sort(cha);
				DecimalFormat df=new DecimalFormat("#0.00");
				System.out.println(df.format(cha[cha.length-1]));
			}
	}
	
	public static List<Long> sort(List<Long> ligths){
		for (int i = 0; i < ligths.size(); i++) {
			for (int j = i + 1; j < ligths.size(); j++) {
				long temp = 0;
				if (ligths.get(i) > ligths.get(j)) {
					temp = ligths.get(i);
					ligths.set(i, ligths.get(j));
					ligths.set(j, temp);
				}
			}
		}
		
		return ligths;
	}
}
